package 力扣题库;

public class p67二进制求和 {

    public String addBinary(String a, String b) {
        int lenA=a.length();
        int lenB=b.length();

        StringBuilder res=new StringBuilder();

        int carry=0;//表示进位

        for (int i=lenA-1,j=lenB-1 ; i>=0 || j>=0 ; i--,j--) {
            int sum=carry;
            sum = sum + (i>=0 ? a.charAt(i)-'0' : 0);
            sum = sum + (j>=0 ? b.charAt(j)-'0' : 0);
            res.append(sum%2);
            carry = sum/2;
        }

        res.append(carry==1?1:"");//进位为1，就拼接1，不为1则拼接空

        return res.reverse().toString();
    }


    public String addBinary1(String a, String b) {
        //超时：利用库方法，将字符串转为10进制的数，相加后，再转为二进制的字符串
        int a1 = Integer.parseInt(a, 2);//字符串转成整数，第二个参数表示要转换成的二进制
        int b1=Integer.parseInt(b,2);

        return Integer.toBinaryString(a1+b1);
    }


    public static void main(String[] args) {
        StringBuilder s=new StringBuilder();
        s.append("a");
        s.append("");
        System.out.println(s);
    }
}
